home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / NEW / A-Newest / Quittner.d64 / tpug info-8 < prev    next >
Text File  |  2009-01-03  |  5KB  |  69 lines

  1. ║CM:TPUG-8
  2. ║PT5:CN1:JU0:PG61
  3. ├╧═╨╒╘┼╥ ├╧══╧─╧╥┼ 64 & ├64 ╔╬╞╧╥═┴╘╔╧╬-8:
  4. ║PT10:CN0:JU1
  5. ┼╪╔╘╙:
  6.    ╘HE END STATEMENT IN ┬┴╙╔├ IS FINAL
  7.    ╘HE STOP STATEMENT IN ┬┴╙╔├ CAN BE A FINAL ENDING PLUS AN INDICATION OF THE LINE NUMBER IN WHICH THE STOP WAS ASKED FOR. ╚OWEVER USING CONT WILL CONTINUE A ┬┴╙╔├ PROGRAM. ╘HIS IS VERY USEFUL, FOR EXAMPLES, IN DEBUGGING, OR MAKING CHANGES BEFORE CONTINUING VIA DIRECT STATEMENTS (WITHOUT LINE NUMBERS), TO GO SOMEWHERE ELSE IN A PROGRAM, OR TO READ/CHANGE THE VALUE OF VARIABLES.
  8.  
  9. ╙╔╟╬╨╧╙╘╙:
  10.    ┴ SUBROUTINE IN ┬┴╙╔├ ALWAYS SHOULD END WITH A RETURN STATEMENT, BUT IF THERE ARE MORE THAN ONE OUTCOMES POSSIBLE, THEN A SIGNPOST CAN BE INTRODUCED BY PUTTING A NUMBER (0-255 ONLY) INTO A VARIABLE, OR POKING IT INTO A MEMORY LOCATION, BEFORE THE RETURN STATEMENT OF THE SUBROUTINE. 
  11.  
  12. 10GOSUB 100:REM GO INTO A SUBROUTINE STARTING AT LINE 100
  13. 20IFAA=234THEN 1000:REM TAKE AN ALTERNATIVE PATH
  14. 30?"CONTINUING"
  15. 40END
  16. 100ZZ=1:REM JUST ANYTHING, FOR EXAMPLE
  17. 101AA=234:REM THE SIGNPOST TO THE ALTERNATIVE PATH
  18. 110RETURN
  19. 1000?"1000 HERE!":STOP
  20.  
  21.    ╘O GET BACK TO ┬┴╙╔├ FROM A MACHINE LANGUAGE PROGRAM THE RETURNS RTS (96) STATEMENT IS USED, BUT AGAIN IF MORE THAN ONE OUTCOME IS POSSIBLE THEN A SIGNPOST IS PUT IN BEFORE THE RTS STATEMENT. ╞OR EXAMPLE IF .╪ IS NOT USED OTHERWISE, THEN LDX #5 (162,5) WILL LOAD 5 INTO .╪ (781), AND IMMEDIATELY AFTER THE RETURN THE ┬┴╙╔├ PROGRAM WILL HAVE AN IF STATEMENT INCLUDED SHOWING THE ALTERNATIVE PATH IF 5 IS IN 781.
  22.  
  23.    ╔N MACHINE LANGUAGE THE JUMP STATEMENT (76) IS AN IMPORTANT MOVE TO ANOTHER PROGRAM. ╞OR EXAMPLE 76 123 234 WILL CAUSE A JUMP TO THE ADDRESS 123+256*234 (=60027) UNCONDITIONALLY.
  24.    ┴N INDIRECT JUMP IS AVAILABLE (108). ╞OR EXAMPLE 768 HAS 139 IN IT, AND 769 HAS 227 IN IT. ╘HEIR COMBINATION INTO AN ABSOLUTE ADDRESS IS 139+256*227 (=58251), ALSO 768/256=3 AND 768-256*3=0, SO THAT THE INDIRECT JUMP 108 0 3 WILL CAUSE 58251 TO BE THE NEXT ADDRESS. ╘HE PAIR, FOR EXAMPLE 768/769, IS CALLED A VECTOR; IT LEADS TO THE ┬┴╙╔├ ROUTINE THAT PRINTS OUT THE ERROR MESSAGES OF ┬┴╙╔├ (SEE BELOW). ╙IMILARLY 770/771 IS A VECTOR THAT LEADS TO THE MAIN ┬┴├╔├ PROGRAM LOOP, 772/773 IS A VECTOR THAT PRODUCES ┬┴╙╔├'S TOKENS (NUMBERS CORRESPONDING TO THE ┬┴╙╔├ COMMANDS IN ┼NGLISH, SEE BELOW), 774/775 IS THE VECTOR THAT LEADS TO THE ROUTINE THAT CONVERTS A ┬┴╙╔├ TOKEN (A SPECIFIED NUMBER) INTO THE CORRESPONDING COMMAND TEXT IN ┼NGLISH, ETC.
  25.    ╘HERE IS ALSO A JSR OP-CODE (32) IN MACHINE LANGUAGE THAT JUMPS DIRECTLY TO A SUBROUTINE, AND THEN COMES BACK AFTER THE RTS (96) OP-CODE THAT IS AT THE END OF THE SUBROUTINE. ╘HERE IS NO INDIRECT JSR EQUIVALENT.
  26.  
  27.    ╘O SEE ┬┴╙╔├'S TOKEN NAMES (SEE BELOW) AND ALSO ERROR MESSAGES TYPE IN DIRECT MODE (WITHOUT LINE NUMBER)
  28.    FOR I=41118 TO I+650:?CH╥(P┼(I));:N┼
  29.  
  30.    ┬┴╙╔├'S ERROR LISTING ROUTINE:
  31. 10 INPUT A:POKE 781,A
  32. 20 SYS42042:END
  33.  
  34. ╘YPE RUN AND ENTER A NUMBER (1-30)
  35.  
  36. ╔N MACHINE LANGUAGE THE GIVEN ERROR NUMBER (1-30) IS PUT INTO .╪ (781), FOLLOWED BY EITHER THE DIRECT JUMP TO THE MACHINE LANGUAGE ROUTINE STARTING AT 42042 (76 58 164) OR, AS AN ALTERNATIVE, USE AN INDIRECT JUMP (108 0 3) VIA 768/769. ╘HIS PAIR OF BYTES, 768/769, IS CALLED A VECTOR.
  37.  
  38. ╓┼├╘╧╥╙:
  39.    ┴ VECTOR IS A PAIR OF ADJACENT MEMORY LOCATIONS (BYTES) THAT TOGETHER POINT TO A SPECIFIC ADDRESS [PEEK(I)+256*PEEK(I+1)]. ╘HAT PAIR CAN BE REPLACED BY SOME OTHER PAIR OF BYTES, PERMITTING THE USER TO INSERT HIS/HER OWN MACHINE LANGUAGE SUBROUTINE. ╔F IT IS ONLY A DIVERSION, NOT A SUBSTITUTE, THEN THAT INSERTED USER'S SUBROUTINE AT ITS END SHOULD MAKE THE MACHINE GO TO THE ADDRESS THAT THE VECTOR POINTED TO ORIGINALLY; IF IT IS A SUBSTITUTE THEN THE PROGRAM MAY BE DIRECTED TO SOME OTHER ADDRESS, OR END, OR GO TO ┬┴╙╔├, FOR EXAMPLES. ┬EFORE CHECKING/DEBUGGING YOUR NEW PROGRAM BE SURE TO SAVE EVERYTHING FIRST IN CASE YOU MAY HAVE TO SWITCH OFF THE COMPUTER FIRST TO CONTINUE YOUR WORK AND THEREFORE LOSE EVERYTHING THAT HAS NOT BEEN SAVED ON DISK OR ON TAPE.
  40.  
  41. ╘╧╦┼╬╙:
  42.    ╘OKENS ARE NUMBERS THAT ┬┴╙╔├ USES AS REPLACEMENTS FOR THE COMMANDS IN ┼NGLISH, ALSO CALLED KEYWORDS. ╙OME OF THEM ARE LISTED FROM 41118 (SEE ABOVE), WITH THEIR LAST LETTERS IN CAPITALS AS AN INDICATOR TO THE ┬┴╙╔├ ROUTINE THAT THAT LETTER IS THE END OF THE KEYWORD. ╘HESE NUMBERS (TOKENS) START WITH 128 (END) AND CONTINUE UP TO 203 (GO). FOR IS 129, NEXT IS 130, DATA IS 131, REM IS 143, ETC.
  43.  
  44. ╘╚┼ ┬┴╙╔├ ╨╥╧╟╥┴═ ╔╬ ═┼═╧╥┘:
  45.    ╨ROGRAMS CAN START ANYWHERE IN ╥┴═ FROM 2049 (ALWAYS AFTER A COMPULSORY ZERO), WITH THE DEFAULT START ADDRESS BEING 2049. ╞OR EXAMPLE:
  46.  
  47. 10 REM"╘╨╒╟
  48. 20DATA 12, 34, 56
  49.  
  50.    ╒SING THE DIRECT MODE (WITHOUT LINE NUMBER) ENTER THIS TO SEE HOW ┬┴╙╔├ USES THE MEMORY:
  51.     F╧I=2049 TO 2078:?ST╥(I)ST╥(P┼(I));:N┼
  52.  
  53. 12 8 IS THE ADDRESS OF THE START OF THE NEXT LINE, HERE 12+256*8=2060
  54. 10 0 IS THE LINE NUMBER, HERE 10+256*0=10
  55. 143 IS THE NUMBER OF THE TOKEN, HERE REM
  56. 34 REPRESENTS THE QUOTE CHARACTER
  57. 212 208 213 AND 199 ARE THE CAPITAL LETTERS ╘╨╒╟
  58. 0 INDICATES THE END OF THAT LINE. ╬OW CONTINUING WITH ANOTHER LINE:
  59. 29 8 IS THE ADDRESS OF THE NEXT LINE, HERE 29+256*8=2077
  60. 20 0 IS THE LINE NUMBER, HERE 20+256*0=20
  61. 131 IS THE TOKEN FOR DATA
  62. 32 49 50 44 32 ARE THE CHARACTERS FOR SPACE, 1, 2, COMMA, SPACE
  63. 51 52 44 32 53 54 ARE THE CHARACTERS 3, 4, COMMA, SPACE, 5, 6
  64. ╘HE ZERO IN 2076 INDICATES THE END OF THAT LINE. ╬OW THE NEXT LINE, IF ANY:
  65. 0 0 INDICATES THAT THERE IS NO FURTHER LINE, IT IS THE END OF THE ┬┴╙╔├ PROGRAM.
  66.  
  67. ║PT20:CN1
  68.    ┬Y ╩OE ╤UITTNER, ╘╨╒╟, ╩ANUARY 17, 2008
  69.